function fn() {
    var arr = []
    for (var i = 0; i < 5; i++) {
        function foo(n) {
            arr.push(function () {
                console.log(n)
            })
        }
        foo(i)
    }
    return arr
}

var funcs = fn()
for (var j = 0; j < 5; j++) {
    funcs[j]()
}




// function fn() {
//     var arr = []
//     for (var i = 0; i < 5; i++) {
//         arr.push(function () {
//             console.log(i)
//         })
//     }
//     return arr
// }

// var funcs = fn()
// for (var j = 0; j < 5; j++) {
//     funcs[j]()
// }


